iT邦幫忙

2021 iThome 鐵人賽

DAY 11
0
DevOps

不僅是程式碼代管平台 - Github 能做些什麼?系列 第 11

GitHub Actions 基本介紹 - 開始自動化 workflow 的第一步

  • 分享至 

  • xImage
  •  

使用 GitHub Actions 可以讓 GitHub Repo 內自訂且自動執行你的軟體開發流程,舉例來說:當有 Contributor 建立 Pull Request 時,會觸發執行自動測試腳本進行測試。你可以建立與共享任何你喜歡的自動化工作(Job),完整且任意組合它們,進而達到持續整合 (continuous integration) 與持續佈署 (continuous delivery)。


GitHub Actions 介紹

在開始動手之前,我們先了解一下 GitHub Actions 組成元件:

  • Event: 觸發自動化工作流程的功能。GitHub Action 有豐富的觸情境,在符合的條件下即啟動工作
  • Jobs: Job 是在同一個 Runner 執行的一組 Step。預設情況下這些工作會平行執行,你也能設定循序執行,當其中一個 Job 失敗後,下一個 Job 不會執行
  • Step: 在 Job 內可以執行命令獨立工作,Step 可以是一個命令或一個 Action,同一個 Job 內允許所有 Action 共享資料
  • Action: 獨立的執行內容,可以自行撰寫,也可以使用 GitHub 社群創作的 Action 來完成工作流程
  • Runner: 代理程式,負責執行自動化程式的伺服器,運作在 Ubuntu Linux、Microsoft Windows 和 macOS 上

https://ithelp.ithome.com.tw/upload/images/20210911/200914947vwZzpjSzD.png

若你有閱讀 什麼是 Github? 開發人員不能不知道的協同合作平台 這篇文章,會發現公開專案執行 Action 不需要費用/私有專案則有時間限制:GitHub 提供了 Runner 給你執行自動化流程,若想要運用在組織內部的私有專案上,會有一些費用產生,好處是你不需要維護虛擬機器/伺服器/Runner,節省時間。

理所當然,也有 self-hosted runners 選項,在自己的主機上安裝 runner 執行自動化動作,若原本就擁有虛擬主機,可以省下一些費用,但缺點需要自己安裝相關套件與設定。

https://ithelp.ithome.com.tw/upload/images/20210911/20091494rLHHJW8tTX.png

你可以在右上角個人圖像旁的下拉選單 > Setting > Billing & Plan 找到這個月你 GitHub Actions 使用量,並設定使用上限金額

https://ithelp.ithome.com.tw/upload/images/20210911/20091494ZQ8cjezD5G.png

https://ithelp.ithome.com.tw/upload/images/20210911/20091494FKLX8Fw56D.png


開始使用 GitHub Action - Hello World

GitHub Actions 的工作流程設定是透過 YAML 語法,剛開始學的朋友可能看到一堆陌生語法就很抗拒,而且也不知道從何開始。還好 GitHub Actions 提供了許多 Template 讓開發人員可以直接套用。開啟你的 Repo,點選上 GitHub Action,即可看到許多範本,建議可以從這些範本找到符合你需求的工作流程,進而修改它達到你要的目的。

我們找到 simple workflow,點選 Set up this workflow

初期先了解 YAML 每個語法與結構,並透過文件、範本或參考其他人的做法是不錯的方式

simple workflow 只有印出 Hello World 文字,所以任何 Repo 皆可以執行

https://ithelp.ithome.com.tw/upload/images/20210911/20091494s7kido2n6z.png

接下來,GitHub Action 會在 Repo 內 .GitHub 資料夾內建立新的 YMAL 檔案,並且產生出你選的範本

https://ithelp.ithome.com.tw/upload/images/20210911/20091494q7vRtgLrKg.png

第一次看到這個工作流程不用太擔心,我們在下一篇文章會詳細逐一說明內容。先點選右上角 Start commit 按鈕,點選 Commit new file。

若你仔細閱讀這些語法與註解,結合上面提到的元件,似乎可以了解這個工作流程在做什麼...?

https://ithelp.ithome.com.tw/upload/images/20210911/20091494M4wAZI2fZy.png

點選上方 Actions 按鈕 > 左邊 CI > 點選 Run workflow > 選擇 branch > 點選 run workflow
https://ithelp.ithome.com.tw/upload/images/20210911/20091494QRD3qetv9B.png

https://ithelp.ithome.com.tw/upload/images/20210911/20091494zbuT44iaVJ.png

點選 All workflow,可以看到正在執行的工作流程 (黃色) 與 執行完成的工作流程 (綠色),點選剛剛執行的 CI,

https://ithelp.ithome.com.tw/upload/images/20210911/20091494h6l9QBpJJx.png

點選中間 Build Job,即可看見執行歷程 (因為此工作流程只有印出 Hello World 文字,所以任何 Repo 皆可以執行)

https://ithelp.ithome.com.tw/upload/images/20210911/200914941zlDU00HS2.png

https://ithelp.ithome.com.tw/upload/images/20210911/20091494hlpYM3gnTk.png


GitHub Action 介紹只有這樣?! 先別急,我們會有更深入的說明,讓讀者循序漸進的了解。在閱讀完這篇文章之後,你應該已經知道:

  1. GitHub Actions 元件名稱與其功能
  2. 如何檢視 GitHub Action 每月使用量
  3. 如何透過範本建立第一個工作流程
  4. 如何執行工作流程
  5. 如何檢視工程流程執行情況

下一篇文章,我們詳細說明 yml 內容(Workflow syntax)。

若你喜歡我的文章,歡迎分享與訂閱,謝謝。


上一篇
GitHub Wiki - 為你的 Repository 加入文件管理功能
下一篇
GitHub Action YAML - 語意解析與指令說明
系列文
不僅是程式碼代管平台 - Github 能做些什麼?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言